package com.zhike.service.file;

import java.util.HashMap;
import java.util.Set;
import java.util.HashSet;

import javax.annotation.Resource;

import com.zhike.common.conf.IMBaseConf;
import com.zhike.common.constant.Constants;

import lombok.extern.slf4j.Slf4j;

/**
 * 位置消息的地图预览图文件上传处理实现类。
 * 
 * @author Jack Jiang
 * @sin 6.0
 */
@Slf4j
public class LocationPreviewUploader extends UploaderRoot {
	@Resource
	private IMBaseConf baseConf;

	@Override
	public String getFileSaveDir() {
		return baseConf.getDIR_USER_UPLOAD();
	}

	@Override
	public void onUploadSucess(HashMap<String, Object> parametersFromClient) throws Exception {
		String userUid = (String) parametersFromClient.get("user_uid");
		// 因为服务端是支持多文件上传的API，所以客户端单独把文件名带过来了，方便使用！
		String fileName = (String) parametersFromClient.get("file_name");
		// // 客户端传过来的token，用于请求的合法性检查，当前未作强制检查，留作以后使用
		// String token = (String)parametersFromClient.get("token");

		log.debug("[" + getDebugTAG() + "] 用户" + userUid + "的位置消息预览图文件" + fileName + "数据上传成功！【OK】");
	}

	@Override
	public void onUploadFailure(Exception ex) {
		log.error("[" + getDebugTAG() + "] 处理位置消息预览图上传时出错了，" + ex.getMessage(), ex);
	}

	@Override
	public String getDebugTAG() {
		return "HTTP位置消息预览图";
	}

	@Override
	public String getPathTag() {
		return Constants.UPLOAD_CHAT + "/location/";
	}

	@Override
	public Set<String> getDetectedTypes() {
		Set<String> allowExtensions = new HashSet<>();
		allowExtensions.add("txt");
		allowExtensions.add("pdf");
		allowExtensions.add("docx");
		return allowExtensions;
	}
}
